package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生作业提交对象 student_assignment_submissions
 * 
 * @author ruoyi
 * @date 2025-08-15
 */
public class StudentAssignmentSubmissions extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 提交ID */
    private Long submissionId;

    /** 学生ID */
    @Excel(name = "学生ID")
    private Long studentId;

    /** 作业ID */
    @Excel(name = "作业ID")
    private Long assignmentId;

    /** 作业题目ID */
    @Excel(name = "作业题目ID")
    private Long assignmentProblemId;

    /** 提交内容 */
    @Excel(name = "提交内容")
    private String submissionContent;

    /** 提交类型 */
    @Excel(name = "提交类型")
    private String submissionType;

    /** 文件路径 */
    @Excel(name = "文件路径")
    private String filePath;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submissionTime;

    /** 得分 */
    @Excel(name = "得分")
    private BigDecimal score;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 提交次数 */
    @Excel(name = "提交次数")
    private Long submissionCount;

    /** 是否迟交 */
    @Excel(name = "是否迟交")
    private Integer isLate;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setSubmissionId(Long submissionId) 
    {
        this.submissionId = submissionId;
    }

    public Long getSubmissionId() 
    {
        return submissionId;
    }

    public void setStudentId(Long studentId) 
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }

    public void setAssignmentId(Long assignmentId) 
    {
        this.assignmentId = assignmentId;
    }

    public Long getAssignmentId() 
    {
        return assignmentId;
    }

    public void setAssignmentProblemId(Long assignmentProblemId) 
    {
        this.assignmentProblemId = assignmentProblemId;
    }

    public Long getAssignmentProblemId() 
    {
        return assignmentProblemId;
    }

    public void setSubmissionContent(String submissionContent) 
    {
        this.submissionContent = submissionContent;
    }

    public String getSubmissionContent() 
    {
        return submissionContent;
    }

    public void setSubmissionType(String submissionType) 
    {
        this.submissionType = submissionType;
    }

    public String getSubmissionType() 
    {
        return submissionType;
    }

    public void setFilePath(String filePath) 
    {
        this.filePath = filePath;
    }

    public String getFilePath() 
    {
        return filePath;
    }

    public void setSubmissionTime(Date submissionTime) 
    {
        this.submissionTime = submissionTime;
    }

    public Date getSubmissionTime() 
    {
        return submissionTime;
    }

    public void setScore(BigDecimal score) 
    {
        this.score = score;
    }

    public BigDecimal getScore() 
    {
        return score;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setSubmissionCount(Long submissionCount) 
    {
        this.submissionCount = submissionCount;
    }

    public Long getSubmissionCount() 
    {
        return submissionCount;
    }

    public void setIsLate(Integer isLate) 
    {
        this.isLate = isLate;
    }

    public Integer getIsLate() 
    {
        return isLate;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("submissionId", getSubmissionId())
            .append("studentId", getStudentId())
            .append("assignmentId", getAssignmentId())
            .append("assignmentProblemId", getAssignmentProblemId())
            .append("submissionContent", getSubmissionContent())
            .append("submissionType", getSubmissionType())
            .append("filePath", getFilePath())
            .append("submissionTime", getSubmissionTime())
            .append("score", getScore())
            .append("status", getStatus())
            .append("submissionCount", getSubmissionCount())
            .append("isLate", getIsLate())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
